const express = require("express");
const router = express.Router();
const { uploading, FormatJson } = require("../utils/tool");
const { UploadError } = require("../utils/errors");
const multer = require("multer");
// 文件上传
router.post("/", async (req, res, next) => {
    console.log("uploading");
    uploading.single("file")(req, res, function (err) {
        if (err instanceof multer.MulterError) {
            // 发生错误
            next(new UploadError("上传文件失败，请检查文件的大小，控制在 2MB 以内"));
            //其他地方可以直接调用捕捉到是因为在其router中的里面，不是其回调函数中，所以使用next进行向后传递到有处理err的地方
        } else {
            if (!req.file) {
                next(new UploadError("文件上传类型为图片的形式,请检查自己的文件及后缀名!"));//next()之后代码依旧会进行执行
                return;
            }
            const path = "/static/uploads/" + req.file.filename;
            res.send(FormatJson(0, "", path));
        }

    })
})

module.exports = router;